# FROM ... AS builder : 表示依赖的镜像只是使用在编译阶段
FROM golang:1.18.1 AS builder

# 编译阶段的工作目录，也可以作为全局工作目录
WORKDIR /build

# 把当前目录的所有内容copy到 WORKDIR指定的目录中
COPY . /build

# 执行go build命令
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o go-app main.go

FROM alpine:3.14.0

WORKDIR /app

# 把执行builder阶段的结果 /app/main拷贝到/app中
COPY --from=builder /build/go-app /app/go-app

EXPOSE 3000

# 运行main命令，启动项目
# /app/main 指向RUN命令的 go build -o main的结果
ENTRYPOINT ["/app/go-app"]
